#ifndef CAMWHORE_H
#define CAMWHORE_H

#include <QtGui/QWidget>
#include <QtGui/QPainter>
#include <QtGui/QPushButton>
#include <QtGui/QVBoxLayout>
#include <QtGui/QFileDialog>

#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>

#include <QCloseEvent>
#include <QDebug>

#include "ui_CamWhore.h"

#include <Webcam.h>

#include "WebcamWidget.h"
#include "EffectManager.h"
#include "EffectListParser.h"
#include "EffectSelectionWidget.h"
#include "Settings.h"
#include "DeviceSelectionDialog.h"
#include "FacebookLoginDialog.h"
#include "FacebookAPIManager.h"

class CamWhore : public QWidget
{
	Q_OBJECT

public:
	CamWhore(QWidget *parent = 0, Qt::WFlags flags = 0);
	~CamWhore();
	
	void populateEffectList();

private:
	Ui::CamWhoreClass ui;

	Webcam* m_webcam;

	Settings m_settings;
	FacebookLoginDialog* m_dialog;
	FacebookAPIManager m_fbApi;

	EffectManager m_effectManager;

public slots:
	void saveImage();
	void effectSelected(const QString& text);
	void fbItPressed();
	void closeFbDialog();
	void setupFbApi();
};

#endif // CAMWHORE_H
